package org.bai.miaoshaproject.service;

import org.bai.miaoshaproject.error.BusinessException;
import org.bai.miaoshaproject.service.model.ItemModel;

import java.util.List;

/**
 * ClassName ItemService
 *
 * @author Bai
 * @version 1.0
 * @date 2019/6/1 0001 下午 12:27
 **/
public interface ItemService {

    /**
     * 创建商品
     * @param itemModel {@link ItemModel} 商品信息
     * @return 商品信息
     */
    ItemModel createItem(ItemModel itemModel) throws BusinessException;

    /**
     * 商品列表预览
     * @return {@link List<ItemModel>} 商品列表
     */
    List<ItemModel> listItem();

    /**
     * 商品详情预览
     * @param id {@link Integer} 商品ID
     * @return {@link ItemModel} 商品信息
     */
    ItemModel getItemById(Integer id);

    /**
     * 库存扣减
     * @param itemId 商品Id
     * @param amount 扣减数目
     * @return {@link boolean}
     * @throws BusinessException
     */
    boolean decreaseStock(Integer itemId, Integer amount) throws BusinessException;

    /**
     * 销量增加
     * @param itemId 商品编号
     * @param amount 销量
     */
    void increaseSales(Integer itemId, Integer amount) throws BusinessException;
}
